import streamlit as st
import pandas as pd
import plotly.express as px
import plotly.graph_objects as go
from plotly.subplots import make_subplots
import numpy as np
from datetime import datetime, timedelta
import random
import hashlib

# 页面配置
# 页面配置已在主应用中设置

# 页面标题
st.title("🏭 生产管理系统")
st.markdown("---")

# 侧边栏导航
st.sidebar.title("功能导航")
page_selection = st.sidebar.selectbox(
    "选择功能模块",
    ["生产概览", "生产计划", "生产执行", "设备管理", "质量监控", "生产分析", "工艺管理"]
)

# 生产概览页面
if page_selection == "生产概览":
    st.header("📊 生产概览")
    
    # 关键指标
    col1, col2, col3, col4 = st.columns(4)
    
    with col1:
        st.metric(
            label="今日产量",
            value="2,450 件",
            delta="+8.5%"
        )
    
    with col2:
        st.metric(
            label="设备利用率",
            value="87.3%",
            delta="+2.1%"
        )
    
    with col3:
        st.metric(
            label="合格率",
            value="98.7%",
            delta="+0.3%"
        )
    
    with col4:
        st.metric(
            label="在制品数量",
            value="1,234 件",
            delta="-5.2%"
        )
    
    # 生产趋势图表
    col1, col2 = st.columns(2)
    
    with col1:
        # 生产量趋势
        dates = pd.date_range(start='2024-01-01', end='2024-12-31', freq='D')
        production_data = pd.DataFrame({
            '日期': dates,
            '产量': [2000 + 500*np.sin(i*2*np.pi/365) + np.random.normal(0, 100) 
                   for i in range(len(dates))]
        })
        
        fig_production = px.line(production_data, x='日期', y='产量',
                               title="生产量趋势")
        st.plotly_chart(fig_production, use_container_width=True)
    
    with col2:
        # 设备状态分布
        equipment_status = pd.DataFrame({
            '状态': ['运行中', '待机', '维护中', '故障'],
            '数量': [45, 12, 8, 3],
            '颜色': ['#2E8B57', '#FFD700', '#FF8C00', '#DC143C']
        })
        
        fig_equipment = px.pie(equipment_status, values='数量', names='状态',
                             title="设备状态分布",
                             color_discrete_sequence=equipment_status['颜色'])
        st.plotly_chart(fig_equipment, use_container_width=True)
    
    # 生产线状态
    st.subheader("生产线实时状态")
    
    production_lines = pd.DataFrame({
        '生产线': [f'生产线{i}' for i in range(1, 9)],
        '产品': ['产品A', '产品B', '产品C', '产品A', '产品D', '产品B', '产品E', '产品C'],
        '当前产量': [245, 189, 312, 278, 156, 203, 167, 289],
        '计划产量': [250, 200, 300, 280, 160, 200, 170, 290],
        '完成率': ['98.0%', '94.5%', '104.0%', '99.3%', '97.5%', '101.5%', '98.2%', '99.7%'],
        '状态': ['正常', '正常', '超产', '正常', '正常', '超产', '正常', '正常'],
        '预计完成时间': ['16:30', '17:15', '15:45', '16:45', '17:30', '15:30', '17:00', '16:15']
    })
    
    # 根据状态设置行颜色
    def highlight_status(row):
        if row['状态'] == '超产':
            return ['background-color: #e8f5e8'] * len(row)
        elif row['状态'] == '正常':
            return ['background-color: #f0f8ff'] * len(row)
        else:
            return ['background-color: #fff3cd'] * len(row)
    
    styled_df = production_lines.style.apply(highlight_status, axis=1)
    st.dataframe(styled_df, use_container_width=True)

# 生产计划页面
elif page_selection == "生产计划":
    st.header("📅 生产计划")
    
    # 计划制定
    st.subheader("新建生产计划")
    
    col1, col2, col3 = st.columns(3)
    
    with col1:
        plan_name = st.text_input("计划名称", "2024年第一季度生产计划")
        start_date = st.date_input("开始日期", datetime.now().date())
        end_date = st.date_input("结束日期", datetime.now().date() + timedelta(days=30))
    
    with col2:
        product_type = st.selectbox("产品类型", ["产品A", "产品B", "产品C", "产品D", "产品E"])
        target_quantity = st.number_input("目标产量", min_value=0, value=1000)
        priority = st.selectbox("优先级", ["高", "中", "低"])
    
    with col3:
        production_line = st.selectbox("指定生产线", [f"生产线{i}" for i in range(1, 9)])
        shift = st.selectbox("班次", ["白班", "夜班", "全天"])
        
        if st.button("创建计划", type="primary"):
            st.success("生产计划创建成功！")
    
    # 现有计划列表
    st.subheader("当前生产计划")
    
    plans_data = pd.DataFrame({
        '计划编号': [f'PLAN{i:04d}' for i in range(1, 11)],
        '计划名称': [f'生产计划{i}' for i in range(1, 11)],
        '产品': ['产品A', '产品B', '产品C', '产品A', '产品D', '产品B', '产品E', '产品C', '产品A', '产品D'],
        '目标产量': [1000, 800, 1200, 900, 600, 1100, 750, 950, 1050, 850],
        '已完成': [850, 720, 1180, 890, 580, 1050, 730, 920, 980, 800],
        '完成率': ['85.0%', '90.0%', '98.3%', '98.9%', '96.7%', '95.5%', '97.3%', '96.8%', '93.3%', '94.1%'],
        '开始日期': ['2024-01-15', '2024-01-20', '2024-01-18', '2024-01-22', '2024-01-25',
                   '2024-01-28', '2024-02-01', '2024-02-05', '2024-02-08', '2024-02-10'],
        '结束日期': ['2024-02-15', '2024-02-20', '2024-02-18', '2024-02-22', '2024-02-25',
                   '2024-02-28', '2024-03-01', '2024-03-05', '2024-03-08', '2024-03-10'],
        '状态': ['进行中', '进行中', '即将完成', '进行中', '进行中', '进行中', '进行中', '进行中', '进行中', '进行中'],
        '优先级': ['高', '中', '高', '中', '低', '中', '高', '中', '低', '中']
    })
    
    # 根据优先级和状态设置行颜色
    # 使用缓存来避免重复计算样式，减少表格抖动
    def highlight_plans(row):
            if row['状态'] == '即将完成':
                return ['background-color: #e8f5e8'] * len(row)
            elif row['状态'] == '进行中':
    
    # 直接应用样式到plans_data
    styled_df = plans_data.style.apply(highlight_plans, axis=1)
    st.dataframe(styled_df, use_container_width=True)
    
    # 计划执行情况分析
    st.subheader("计划执行分析")
    
    col1, col2 = st.columns(2)
    
    with col1:
        # 计划完成率分布
        completion_ranges = ['90-100%', '80-90%', '70-80%', '60-70%', '<60%']
        completion_counts = [6, 3, 1, 0, 0]
        
        fig_completion = px.bar(x=completion_ranges, y=completion_counts,
                              title="计划完成率分布")
        st.plotly_chart(fig_completion, use_container_width=True)
    
    with col2:
        # 产品类型产量对比
        product_output = pd.DataFrame({
            '产品': ['产品A', '产品B', '产品C', '产品D', '产品E'],
            '计划产量': [2950, 1900, 2150, 1450, 750],
            '实际产量': [2720, 1770, 2100, 1380, 730]
        })
        
        fig_output = px.bar(product_output, x='产品', y=['计划产量', '实际产量'],
                          title="产品产量对比", barmode='group')
        st.plotly_chart(fig_output, use_container_width=True)

# 生产执行页面
elif page_selection == "生产执行":
    st.header("⚡ 生产执行")
    
    # 实时监控
    st.subheader("实时生产监控")
    
    # 创建实时数据
    current_time = datetime.now()
    time_points = [current_time - timedelta(minutes=i*5) for i in range(12, 0, -1)]
    
    realtime_data = pd.DataFrame({
        '时间': time_points,
        '生产线1': [np.random.randint(80, 120) for _ in range(12)],
        '生产线2': [np.random.randint(70, 110) for _ in range(12)],
        '生产线3': [np.random.randint(85, 125) for _ in range(12)],
        '生产线4': [np.random.randint(75, 115) for _ in range(12)]
    })
    
    fig_realtime = px.line(realtime_data, x='时间', 
                         y=['生产线1', '生产线2', '生产线3', '生产线4'],
                         title="实时产量监控（件/小时）")
    st.plotly_chart(fig_realtime, use_container_width=True)
    
    # 工单管理
    st.subheader("工单管理")
    
    col1, col2 = st.columns([2, 1])
    
    with col1:
        work_orders = pd.DataFrame({
            '工单号': [f'WO{i:06d}' for i in range(1, 16)],
            '产品': ['产品A', '产品B', '产品C', '产品A', '产品D'] * 3,
            '数量': [100, 150, 200, 120, 80, 90, 110, 160, 140, 70, 130, 180, 95, 125, 105],
            '已完成': [85, 140, 180, 115, 75, 85, 100, 150, 130, 65, 120, 170, 90, 115, 95],
            '进度': ['85%', '93%', '90%', '96%', '94%', '94%', '91%', '94%', '93%', '93%', '92%', '94%', '95%', '92%', '90%'],
            '生产线': ['生产线1', '生产线2', '生产线3', '生产线1', '生产线4'] * 3,
            '状态': ['进行中', '进行中', '进行中', '即将完成', '进行中'] * 3,
            '预计完成': ['14:30', '15:45', '16:20', '13:50', '17:10', '15:20', '16:45', '14:15', '15:30', '16:50', '14:40', '15:55', '16:30', '15:10', '17:00']
        })
        
        # 根据状态设置行颜色
        # 使用缓存来避免重复计算样式，减少表格抖动
        def highlight_work_orders(row):
                if row['状态'] == '即将完成':
                    return ['background-color: #e8f5e8'] * len(row)
                elif row['状态'] == '进行中':
    
        # 直接应用样式到work_orders
        styled_df = work_orders.style.apply(highlight_work_orders, axis=1)
        st.dataframe(styled_df, use_container_width=True)
    
    with col2:
        st.subheader("快速操作")
        
        if st.button("🔄 刷新数据", use_container_width=True):
            st.success("数据已刷新")
        
        if st.button("⏸️ 暂停生产线", use_container_width=True):
            selected_line = st.selectbox("选择生产线", [f"生产线{i}" for i in range(1, 5)])
            st.warning(f"{selected_line}已暂停")
        
        if st.button("▶️ 启动生产线", use_container_width=True):
            selected_line = st.selectbox("选择生产线", [f"生产线{i}" for i in range(1, 5)], key="start")
            st.success(f"{selected_line}已启动")
        
        if st.button("📊 生成报告", use_container_width=True):
            st.info("正在生成生产报告...")
    
    # 异常处理
    st.subheader("异常处理")
    
    exceptions_data = pd.DataFrame({
        '时间': ['14:25', '13:45', '12:30', '11:15', '10:20'],
        '生产线': ['生产线3', '生产线1', '生产线4', '生产线2', '生产线3'],
        '异常类型': ['设备故障', '质量问题', '原料不足', '人员缺岗', '工艺偏差'],
        '严重程度': ['高', '中', '高', '低', '中'],
        '处理状态': ['处理中', '已解决', '处理中', '已解决', '已解决'],
        '负责人': ['张工', '李工', '王工', '赵工', '陈工'],
        '预计解决时间': ['15:00', '-', '14:00', '-', '-']
    })
    
    # 根据严重程度设置行颜色
    def highlight_exceptions(row):
        if row['严重程度'] == '高':
            return ['background-color: #ffebee'] * len(row)
        elif row['处理状态'] == '已解决':
            return ['background-color: #e8f5e8'] * len(row)
        else:
            return ['background-color: #fff3cd'] * len(row)
    
    # 直接应用样式到exceptions_data
    styled_df = exceptions_data.style.apply(highlight_exceptions, axis=1)
    st.dataframe(styled_df, use_container_width=True)

# 设备管理页面
elif page_selection == "设备管理":
    st.header("🔧 设备管理")
    
    # 设备概览
    st.subheader("设备概览")
    
    col1, col2, col3, col4 = st.columns(4)
    
    with col1:
        st.metric("设备总数", "68台", "")
    
    with col2:
        st.metric("运行设备", "59台", "+2台")
    
    with col3:
        st.metric("维护设备", "6台", "-1台")
    
    with col4:
        st.metric("故障设备", "3台", "+1台")
    
    # 设备列表
    st.subheader("设备详情")
    
    equipment_data = pd.DataFrame({
        '设备编号': [f'EQ{i:04d}' for i in range(1, 21)],
        '设备名称': [f'设备{chr(65+i%26)}' for i in range(20)],
        '设备类型': ['冲压机', '焊接机', '装配线', '检测仪', '包装机'] * 4,
        '生产线': [f'生产线{(i%4)+1}' for i in range(20)],
        '状态': ['运行中', '运行中', '维护中', '运行中', '故障'] * 4,
        '利用率': [f'{np.random.randint(70, 100)}%' for _ in range(20)],
        '运行时间': [f'{np.random.randint(6, 24)}小时' for _ in range(20)],
        '下次保养': [f'2024-{np.random.randint(1, 12):02d}-{np.random.randint(1, 28):02d}' for _ in range(20)],
        '负责人': ['张工', '李工', '王工', '赵工', '陈工'] * 4
    })
    
    # 根据设备状态设置行颜色
    def highlight_equipment(row):
        if row['状态'] == '故障':
            return ['background-color: #ffebee'] * len(row)
        elif row['状态'] == '维护中':
            return ['background-color: #fff3cd'] * len(row)
        else:
            return ['background-color: #e8f5e8'] * len(row)
    
    # 直接应用样式到equipment_data
    styled_df = equipment_data.style.apply(highlight_equipment, axis=1)
    st.dataframe(styled_df, use_container_width=True)
    
    # 设备性能分析
    st.subheader("设备性能分析")
    
    col1, col2 = st.columns(2)
    
    with col1:
        # 设备利用率趋势
        dates = pd.date_range(start='2024-01-01', periods=30, freq='D')
        utilization_data = pd.DataFrame({
            '日期': dates,
            '平均利用率': [80 + 10*np.sin(i*2*np.pi/30) + np.random.normal(0, 3) 
                        for i in range(30)]
        })
        
        fig_utilization = px.line(utilization_data, x='日期', y='平均利用率',
                                title="设备利用率趋势")
        fig_utilization.add_hline(y=85, line_dash="dash", line_color="red", 
                                annotation_text="目标利用率")
        st.plotly_chart(fig_utilization, use_container_width=True)
    
    with col2:
        # 故障类型分布
        failure_types = pd.DataFrame({
            '故障类型': ['机械故障', '电气故障', '液压故障', '控制系统', '其他'],
            '次数': [15, 8, 6, 4, 2]
        })
        
        fig_failures = px.pie(failure_types, values='次数', names='故障类型',
                            title="故障类型分布")
        st.plotly_chart(fig_failures, use_container_width=True)
    
    # 维护计划
    st.subheader("维护计划")
    
    maintenance_data = pd.DataFrame({
        '设备编号': [f'EQ{i:04d}' for i in [1, 5, 8, 12, 15, 18, 22, 25]],
        '设备名称': [f'设备{chr(65+i)}' for i in [0, 4, 7, 11, 14, 17, 21, 24]],
        '维护类型': ['日常保养', '定期检修', '大修', '日常保养', '定期检修', '日常保养', '大修', '定期检修'],
        '计划日期': ['2024-03-15', '2024-03-18', '2024-03-20', '2024-03-22', '2024-03-25', '2024-03-28', '2024-04-01', '2024-04-05'],
        '预计工时': ['2小时', '8小时', '24小时', '2小时', '8小时', '2小时', '24小时', '8小时'],
        '负责人': ['张工', '李工', '王工', '赵工', '陈工', '张工', '李工', '王工'],
        '状态': ['待执行', '待执行', '待执行', '待执行', '待执行', '待执行', '待执行', '待执行']
    })
    
    st.dataframe(maintenance_data, use_container_width=True)

# 质量监控页面
elif page_selection == "质量监控":
    st.header("🔍 质量监控")
    
    # 质量指标
    st.subheader("质量关键指标")
    
    col1, col2, col3, col4 = st.columns(4)
    
    with col1:
        st.metric("合格率", "98.7%", "+0.3%")
    
    with col2:
        st.metric("一次通过率", "95.2%", "+1.1%")
    
    with col3:
        st.metric("返工率", "1.8%", "-0.2%")
    
    with col4:
        st.metric("客户投诉", "3件", "-2件")
    
    # 质量趋势分析
    col1, col2 = st.columns(2)
    
    with col1:
        # 合格率趋势
        dates = pd.date_range(start='2024-01-01', periods=30, freq='D')
        quality_data = pd.DataFrame({
            '日期': dates,
            '合格率': [98 + 2*np.sin(i*2*np.pi/30) + np.random.normal(0, 0.5) 
                     for i in range(30)]
        })
        
        fig_quality = px.line(quality_data, x='日期', y='合格率',
                            title="产品合格率趋势")
        fig_quality.add_hline(y=98, line_dash="dash", line_color="red", 
                            annotation_text="目标合格率")
        st.plotly_chart(fig_quality, use_container_width=True)
    
    with col2:
        # 不合格原因分析
        defect_reasons = pd.DataFrame({
            '不合格原因': ['尺寸偏差', '表面缺陷', '功能异常', '包装问题', '其他'],
            '数量': [45, 28, 15, 8, 4]
        })
        
        fig_defects = px.bar(defect_reasons, x='不合格原因', y='数量',
                           title="不合格原因分析")
        st.plotly_chart(fig_defects, use_container_width=True)
    
    # 检验记录
    st.subheader("质量检验记录")
    
    inspection_data = pd.DataFrame({
        '检验批次': [f'QC{i:06d}' for i in range(1, 16)],
        '产品': ['产品A', '产品B', '产品C', '产品A', '产品D'] * 3,
        '检验数量': [100, 150, 200, 120, 80, 90, 110, 160, 140, 70, 130, 180, 95, 125, 105],
        '合格数量': [98, 147, 196, 118, 79, 89, 108, 158, 138, 69, 128, 177, 94, 123, 104],
        '合格率': ['98.0%', '98.0%', '98.0%', '98.3%', '98.8%', '98.9%', '98.2%', '98.8%', '98.6%', '98.6%', '98.5%', '98.3%', '98.9%', '98.4%', '99.0%'],
        '检验员': ['王检', '李检', '张检', '赵检', '陈检'] * 3,
        '检验时间': [f'2024-03-{i:02d} 14:30' for i in range(1, 16)],
        '状态': ['合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格', '合格']
    })
    
    st.dataframe(inspection_data, use_container_width=True)
    
    # 质量改进建议
    st.subheader("质量改进建议")
    
    improvement_suggestions = [
        "🔧 加强设备精度校准，减少尺寸偏差",
        "👥 提升操作人员技能培训",
        "📊 建立更完善的质量数据分析系统",
        "🔍 增加关键工序的在线检测",
        "📋 完善质量管理体系文件"
    ]
    
    for suggestion in improvement_suggestions:
        st.info(suggestion)

# 生产分析页面
elif page_selection == "生产分析":
    st.header("📈 生产分析")
    
    # 生产效率分析
    st.subheader("生产效率分析")
    
    col1, col2 = st.columns(2)
    
    with col1:
        # 各生产线效率对比
        efficiency_data = pd.DataFrame({
            '生产线': [f'生产线{i}' for i in range(1, 9)],
            '计划效率': [85, 88, 82, 90, 87, 84, 89, 86],
            '实际效率': [87, 85, 84, 88, 89, 86, 87, 88]
        })
        
        fig_efficiency = px.bar(efficiency_data, x='生产线', 
                              y=['计划效率', '实际效率'],
                              title="生产线效率对比", barmode='group')
        st.plotly_chart(fig_efficiency, use_container_width=True)
    
    with col2:
        # 产能利用率分析
        capacity_data = pd.DataFrame({
            '月份': ['1月', '2月', '3月', '4月', '5月', '6月'],
            '产能利用率': [82, 85, 88, 86, 90, 87]
        })
        
        fig_capacity = px.line(capacity_data, x='月份', y='产能利用率',
                             title="产能利用率趋势", markers=True)
        fig_capacity.add_hline(y=85, line_dash="dash", line_color="red", 
                             annotation_text="目标利用率")
        st.plotly_chart(fig_capacity, use_container_width=True)
    
    # 成本分析
    st.subheader("生产成本分析")
    
    col1, col2 = st.columns(2)
    
    with col1:
        # 成本构成分析
        cost_structure = pd.DataFrame({
            '成本类型': ['原材料', '人工成本', '设备折旧', '能源消耗', '其他'],
            '金额': [450000, 180000, 120000, 80000, 50000],
            '占比': ['51.1%', '20.5%', '13.6%', '9.1%', '5.7%']
        })
        
        fig_cost = px.pie(cost_structure, values='金额', names='成本类型',
                        title="生产成本构成")
        st.plotly_chart(fig_cost, use_container_width=True)
    
    with col2:
        # 单位成本趋势
        months = ['1月', '2月', '3月', '4月', '5月', '6月']
        unit_cost_data = pd.DataFrame({
            '月份': months,
            '单位成本': [125, 128, 122, 120, 118, 115]
        })
        
        fig_unit_cost = px.line(unit_cost_data, x='月份', y='单位成本',
                              title="单位产品成本趋势", markers=True)
        st.plotly_chart(fig_unit_cost, use_container_width=True)
    
    # 产量分析
    st.subheader("产量分析")
    
    # 产品产量对比
    product_output_data = pd.DataFrame({
        '产品': ['产品A', '产品B', '产品C', '产品D', '产品E'],
        '1月': [2500, 1800, 2200, 1500, 800],
        '2月': [2600, 1900, 2100, 1600, 850],
        '3月': [2700, 2000, 2300, 1550, 900],
        '4月': [2800, 1950, 2250, 1650, 920],
        '5月': [2900, 2100, 2400, 1700, 950],
        '6月': [3000, 2200, 2500, 1750, 1000]
    })
    
    # 转换数据格式用于绘图
    output_melted = product_output_data.melt(id_vars=['产品'], 
                                           var_name='月份', 
                                           value_name='产量')
    
    fig_output_trend = px.line(output_melted, x='月份', y='产量', 
                             color='产品', title="各产品产量趋势")
    st.plotly_chart(fig_output_trend, use_container_width=True)
    
    # 生产分析报告
    st.subheader("生产分析报告")
    
    analysis_report = """
    ### 📊 本月生产分析总结
    
    **生产效率方面：**
    - 整体生产效率达到87.2%，较上月提升2.1%
    - 生产线4和生产线7表现突出，效率超过目标值
    - 生产线3需要关注，效率略低于计划
    
    **质量控制方面：**
    - 产品合格率保持在98.7%的高水平
    - 一次通过率提升至95.2%
    - 返工率控制在1.8%以内
    
    **成本控制方面：**
    - 单位产品成本持续下降，本月为115元/件
    - 原材料成本占比51.1%，需要进一步优化采购策略
    - 能源消耗成本控制良好
    
    **改进建议：**
    1. 加强生产线3的设备维护和人员培训
    2. 优化原材料采购渠道，降低成本
    3. 推广生产线4和7的优秀经验
    4. 继续提升自动化水平
    """
    
    st.markdown(analysis_report)

# 工艺管理页面
elif page_selection == "工艺管理":
    st.header("⚙️ 工艺管理")
    
    # 工艺概览
    st.subheader("工艺概览")
    
    col1, col2, col3, col4 = st.columns(4)
    
    with col1:
        st.metric("工艺文件数", "156个", "+8个")
    
    with col2:
        st.metric("标准工时", "2.5小时/件", "-0.1小时")
    
    with col3:
        st.metric("工艺合规率", "96.8%", "+1.2%")
    
    with col4:
        st.metric("工艺改进项", "12项", "+3项")
    
    # 工艺文件管理
    st.subheader("工艺文件管理")
    
    process_docs = pd.DataFrame({
        '文件编号': [f'PROC{i:04d}' for i in range(1, 16)],
        '工艺名称': [f'工艺{chr(65+i)}' for i in range(15)],
        '产品': ['产品A', '产品B', '产品C', '产品A', '产品D'] * 3,
        '版本': ['V2.1', 'V1.8', 'V3.0', 'V2.3', 'V1.5', 'V2.0', 'V1.9', 'V2.2', 'V1.7', 'V2.4', 'V1.6', 'V2.1', 'V1.8', 'V2.0', 'V1.9'],
        '状态': ['有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效', '有效'],
        '创建日期': [f'2024-{np.random.randint(1, 12):02d}-{np.random.randint(1, 28):02d}' for _ in range(15)],
        '更新日期': [f'2024-{np.random.randint(1, 12):02d}-{np.random.randint(1, 28):02d}' for _ in range(15)],
        '负责人': ['工艺工程师A', '工艺工程师B', '工艺工程师C'] * 5
    })
    
    st.dataframe(process_docs, use_container_width=True)
    
    # 工艺参数监控
    st.subheader("工艺参数监控")
    
    col1, col2 = st.columns(2)
    
    with col1:
        # 温度监控
        time_points = pd.date_range(start='2024-03-15 08:00', periods=24, freq='H')
        temp_data = pd.DataFrame({
            '时间': time_points,
            '设定温度': [180] * 24,
            '实际温度': [180 + np.random.normal(0, 2) for _ in range(24)]
        })
        
        fig_temp = px.line(temp_data, x='时间', y=['设定温度', '实际温度'],
                         title="工艺温度监控")
        st.plotly_chart(fig_temp, use_container_width=True)
    
    with col2:
        # 压力监控
        pressure_data = pd.DataFrame({
            '时间': time_points,
            '设定压力': [5.0] * 24,
            '实际压力': [5.0 + np.random.normal(0, 0.1) for _ in range(24)]
        })
        
        fig_pressure = px.line(pressure_data, x='时间', y=['设定压力', '实际压力'],
                             title="工艺压力监控")
        st.plotly_chart(fig_pressure, use_container_width=True)
    
    # 工艺改进项目
    st.subheader("工艺改进项目")
    
    improvement_projects = pd.DataFrame({
        '项目编号': [f'IMP{i:04d}' for i in range(1, 13)],
        '项目名称': [f'工艺改进项目{i}' for i in range(1, 13)],
        '改进类型': ['效率提升', '质量改善', '成本降低', '安全改进'] * 3,
        '当前状态': ['进行中', '已完成', '计划中', '进行中', '已完成', '进行中', '计划中', '已完成', '进行中', '计划中', '已完成', '进行中'],
        '预期收益': ['提升15%效率', '降低2%不良率', '节约10万成本', '减少安全隐患', '提升20%效率', '降低1.5%不良率', '节约8万成本', '减少事故风险', '提升12%效率', '降低3%不良率', '节约15万成本', '提升安全等级'],
        '负责人': ['张工', '李工', '王工', '赵工'] * 3,
        '计划完成日期': [f'2024-{np.random.randint(4, 12):02d}-{np.random.randint(1, 28):02d}' for _ in range(12)]
    })
    
    # 根据状态设置行颜色
    def highlight_projects(row):
        if row['当前状态'] == '已完成':
            return ['background-color: #e8f5e8'] * len(row)
        elif row['当前状态'] == '进行中':
            return ['background-color: #fff3e0'] * len(row)
        else:
            return ['background-color: #f5f5f5'] * len(row)
    
    st.dataframe(improvement_projects.style.apply(highlight_projects, axis=1),
                use_container_width=True)
    
    # 工艺知识库
    st.subheader("工艺知识库")
    
    knowledge_items = [
        "📚 标准作业指导书 - 包含所有产品的详细作业步骤",
        "🔧 设备操作手册 - 各类设备的操作和维护指南",
        "⚠️ 安全操作规程 - 生产过程中的安全注意事项",
        "📊 质量控制标准 - 各工序的质量检验标准",
        "💡 最佳实践案例 - 优秀工艺改进案例分享",
        "🎓 培训资料库 - 员工技能培训相关资料"
    ]
    
    for item in knowledge_items:
        st.info(item)

# 页面底部信息
st.markdown("---")
st.markdown(
    """
    <div style="text-align: center; color: #666; font-size: 0.9rem;">
        生产管理系统 | 数据更新时间: {}
    </div>
    """.format(datetime.now().strftime("%Y-%m-%d %H:%M:%S")),
    unsafe_allow_html=True
)